Дюк, вынеси мусор! — Часть 4

Зачем еще один?

Мы уже успели рассмотреть четыре различных сборщика мусора, разработанных для разных целей, разных профилей нагрузки, разного железа. Что же такого особенного хотели предложить разработчики ZGC, чего мы еще не встречали?

Официальное описание говорит нам о том, что при его проектировании ставились следующие цели:

  1. Поддерживать паузы STW на уровне меньше одной миллисекунды.

  2. Сделать так, чтобы паузы не увеличивались с ростом размера кучи, количества живых объектов или количества корневых ссылок.

  3. Поддерживать кучи размером до 16 ТБ.

Что ж, задачи амбициозные, думаю многим пригодится сборщик с такими характеристиками. Будем разбираться с тем, какие подходы использовались для решения этих задач.

Использование ZGC включается опцией -XX:UseZGC (в версиях JDK с 11-й по 13-ю она доступна только при использовании опции -XX:+UnlockExperimentalVMOptions).

Виртуальная память

Перед тем как начать разбираться с деталями работы ZGC,

Читать далее